package com.atyjh.reggie.service;

import com.atyjh.reggie.dto.DishDto;
import com.atyjh.reggie.dto.Result;
import com.atyjh.reggie.entity.Dish;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * @author yjh
 * @since jdk1.8.0_311 2022.06.16
 */
public interface IDishService extends IService<Dish> {

    /**
     * 保存菜品，在菜品表和口味表中
     *
     * @param dishDto 菜品的 数据传输对象
     * @return 成功/失败信息
     */
    Result<String> saveWithFlavor(DishDto dishDto);

    /**
     * 分页查询
     *
     * @param page 当前页页码
     * @param pageSize 每页数据条数
     * @param name 模糊匹配的key
     * @return 查询结果
     */
    Result<Page<DishDto>> pageDish(Integer page, Integer pageSize, String name);


    /**
     * 查询请求
     *
     * @param id 菜品id
     * @return 菜品信息
     */
    Result<DishDto> getDish(Long id);

    Result<String> updateWithFlavor(DishDto dishDto);


    /**
     * 批量删除菜品
     *
     * @param ids id集合
     * @return 是否成功删除
     */
    Result<String> removeBatch(List<Long> ids);

    Result<List<DishDto>> listDishDTO(Long categoryId);
}
